#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：python_learning 
@File ：简单工厂模式.py
@IDE  ：PyCharm 
@Author ：李涵彬
@Date ：2024/3/1 23:59 
"""

"""
简单工厂模式（Simple Factory Pattern）
模式解释：
简单工厂模式并不属于 GoF 设计模式，但它是一种简单且常用的创建型模式。它通过一个专门的类来创建其他类的实例，被称为工厂类。
"""


class Product:
	def operation(self):
		pass


class ConcreteProductA(Product):
	def operation(self):
		return "ConcreteProductA operation."


class ConcreteProductB(Product):
	def operation(self):
		return "ConcreteProductB operation."


class SimpleFactory:
	def create_product(self, product_type):
		if product_type == "A":
			return ConcreteProductA()
		elif product_type == "B":
			return ConcreteProductB()
		else:
			raise ValueError("Invalid product type.")


factory = SimpleFactory()
product_a = factory.create_product("A")
product_b = factory.create_product("B")

print(product_a.operation())
print(product_b.operation())
